﻿/*MyPhotoIndex Free Photo Organizer <www.myphotoindex.com>
  Copyright (C) <2006-2009>  <Asaf Yarkoni asaf@yarkoni.net>

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using MyPhotoIndex.ImageBank;
using System.Xml.Serialization;
using System.IO;
using MyPhotoIndex.Interfaces.Tagging;

namespace MyPhotoIndex.Plugins.WebHost.RequestHandlers
{
    public class TagsListRequestHandler : IRequestHandler
    {
        public void Process(HttpListenerRequest request, HttpListenerResponse response)
        {
            List<SerializedImageTag> tagList = new List<SerializedImageTag>();

            List<IImageTag> tags = ImageTagCollection.Instance.Tags;
            SerializedImageTag.CopyTags(tags, tagList);

            response.ContentType = Utils.GetContentTypeFromFileExtention(".xml");
            response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate");

            XmlSerializer serializer = new XmlSerializer(typeof(SerializedImageTag[]));
            using (Stream output = response.OutputStream)
            {
                serializer.Serialize(output, tagList.ToArray());
            }
        }
    }
}
